package com.redstar.HappyRefresh.pojo;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Objects;

@Data
@NoArgsConstructor
@ToString
public class HotVideo implements Serializable {

    private String hotFormat; // 热度格式化
    private Double hot; // 热度
    private Long videoId; // 视频id
    private String title; // 视频标题

    public HotVideo(Double hot, Long videoId, String title) {
        this.hot = hot;
        this.videoId = videoId;
        this.title = title;
    }

    public void hotFormat() { // 将热度转化为具体的描述
        BigDecimal bigDecimal = new BigDecimal(this.hot);
        // 返回hot除10000的商，高精度十进制数
        BigDecimal decimal = bigDecimal.divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP);
        DecimalFormat formater = new DecimalFormat("0.0"); // 保留1位小数
        formater.setRoundingMode(RoundingMode.HALF_UP); // 四舍五入
        String formatNum = formater.format(decimal); // 格式化
        this.setHotFormat(formatNum + "万");
    }

    @Override
    public boolean equals(Object o) { // 比较热度
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        HotVideo hotVideo = (HotVideo) o;
        return Objects.equals(videoId, hotVideo.videoId) &&
                Objects.equals(title, hotVideo.title);
    }

    @Override
    public int hashCode() {
        return Objects.hash(videoId, title);
    }
}
